@article{impagliazzo2001problems,
  title={Which problems have strongly exponential complexity?},
  author={Impagliazzo, Russell and Paturi, Ramamohan and Zane, Francis},
  journal={Journal of Computer and System Sciences},
  volume={63},
  number={4},
  pages={512--530},
  year={2001},
  publisher={Elsevier}
}


@book{papadimitriou1998combinatorial,
  title={Combinatorial optimization: algorithms and complexity},
  author={Papadimitriou, Christos H and Steiglitz, Kenneth},
  year={1998},
  publisher={Courier Corporation}
}
    
@article{Burckhardt:2013,
  author = {Burckhardt, Sebastian and Fahndrich, Manuel and de Halleux, Peli and McDirmid, Sean and Moskal, Michal and Tillmann, Nikolai and Kato, Jun},
  title = {It's Alive! Continuous Feedback in UI Programming},
  year = {2013},
  issue_date = {June 2013},
  publisher = {Association for Computing Machinery},
  address = {New York, NY, USA},
  volume = {48},
  number = {6},
  issn = {0362-1340},
  url = {https://doi.org/10.1145/2499370.2462170},
  doi = {10.1145/2499370.2462170},
  abstract = {Live programming allows programmers to edit the code of a running program and immediately see the effect of the code changes. This tightening of the traditional edit-compile-run cycle reduces the cognitive gap between program code and execution, improving the learning experience of beginning programmers while boosting the productivity of seasoned ones. Unfortunately, live programming is difficult to realize in practice as imperative languages lack well-defined abstraction boundaries that make live programming responsive or its feedback comprehensible.This paper enables live programming for user interface programming by cleanly separating the rendering and non-rendering aspects of a UI program, allowing the display to be refreshed on a code change without restarting the program. A type and effect system formalizes this separation and provides an evaluation model that incorporates the code update step. By putting live programming on a more formal footing, we hope to enable critical and technical discussion of live programming systems.},
  journal = {SIGPLAN Not.},
  month = {jun},
  pages = {95–104},
  numpages = {10},
  keywords = {graphical user interface, live programming}
}